Homomorphic encryption is a form of encryption that allows computations to be carried out on ciphertext, thus generating an encrypted result which, when decrypted, matches the result of operations performed on the plaintext. Using homomorphic encryption, for instance, one computer could add two encrypted numbers, and then another computer could decrypt the result, without either of them being able to find the values of the individual numbers.
A variety of homomorphic encryption systems are known in the art. For example, PCT International Publication WO 2014/016795, describes a practical, fully-homomorphic encryption system for specific data in ZN (wherein ZN is the ring of residues modulo N, and N is factored by two primes, p and q). The system can be used in fully-homomorphic methods for practical randomization of data (over a commutative ring), as well as symmetric encryption of mod-N data over the ring ZN. It can be used to secure, for example, the multivariate input or the coefficients of a public polynomial function for running in an open, untrusted environment.
The methods disclosed in the above-mentioned PCT publication are said to enable the use of low-cost collaborative security platforms for applications such as keyed-hash or private-key derivation algorithms. Such a platform may comprise a low-cost (and low-performance) security element, supported by an untrusted high-performance server running the homomorphic algorithms. It is shown in the publication that random plaintext data is a sufficient condition for proof of security of the homomorphic encryption.